Systems and Methods for Rendering User Interface Objects in Accordance with a Variable Scaling Factor

ABSTRACT

A method for rendering one or more user interface objects on a television screen is disclosed. The method is performed at a computer system coupled with the television screen. The method includes receiving a request for rendering a user interface object, and identifying a variable scaling factor. The variable scaling factor is determined in accordance with a distance parameter corresponding to a distance between a respective user and the television screen. The method also includes rendering the user interface object on the television screen in accordance with the variable scaling factor while maintaining a display of a television program on the television screen based on a fixed scaling factor.

RELATED APPLICATION

This application claims priority to U.S. Provisional Application Ser.No. 61/513,444, filed Jul. 29, 2011, entitled “Systems and Methods forRendering User Interface Objects in Accordance with a Variable ScalingFactor,” which is incorporated by reference herein in its entirety.

TECHNICAL FIELD

The disclosed implementations relate generally to rendering userinterface objects on television screens. More particularly, thedisclosed implementations relate to methods and systems for renderinguser interface objects on television screens in accordance with variablescaling factors.

BACKGROUND

Television devices (e.g., televisions and receivers coupled totelevisions) have been traditionally used to access various televisionprograms. Increasingly, non-television devices (e.g., desktop computers,notebook computers, mobile telephones, etc.), typically used foraccessing other multimedia contents and information from websites andexecuting and displaying programs, are also used to access televisionprograms. Conversely, instead of just being used to receive and displaytelevision programming, television devices can also be used to accessother multimedia contents and information from websites and executingand displaying programs.

Non-television devices typically have screens that are smaller than thetelevision screens. In addition, television screens, when in use, aretypically located further from users than the screens of thenon-television devices used by respective users. Thus, displaying userinterface objects on television devices requires considerationsdifferent from displaying similar user interface objects onnon-television devices.

SUMMARY

A number of implementations (e.g., of computer systems or devices, andmethods of operating such systems or devices) that overcome thelimitations and disadvantages described above are presented in moredetail below. These implementations provide methods, systems, andgraphical user interfaces (GUIs) for using rendering one or moreadjustable user interface objects on a television screen.

As described in more detail below, some implementations involve a methodperformed at a computer system coupled with a television screen. Thecomputer system includes one or more processors and memory storing oneor more programs, for execution by the one or more processors, forrendering one or more user interface objects on the television screen.The method includes receiving a request for rendering a user interfaceobject, and identifying a variable scaling factor. The variable scalingfactor is determined in accordance with a distance parametercorresponding to a distance between a respective user and the televisionscreen. The method also includes rendering the user interface object onthe television screen in accordance with the variable scaling factorwhile maintaining a display of a television program on the televisionscreen based on a fixed scaling factor.

In accordance with some implementations, a computer system coupled witha television screen includes one or more processors, and memory storingone or more programs, for execution by the one or more processors, forrendering one or more user interface objects on the television screen.The one or more programs including instructions for receiving a requestfor rendering a user interface object, and identifying a variablescaling factor. The variable scaling factor is determined in accordancewith a distance parameter corresponding to a distance between arespective user and the television screen. The one or more programs alsoinclude instructions for rendering the user interface object on thetelevision screen in accordance with the variable scaling factor whilemaintaining a display of a television program on the television screenbased on a fixed scaling factor.

In accordance with some implementations, a non-transitory computerreadable storage medium stores one or more programs for execution by oneor more processors of a computer system coupled with a televisionscreen. The one or more programs include instructions for receiving arequest for rendering a user interface object, and identifying avariable scaling factor. The variable scaling factor is determined inaccordance with a distance parameter corresponding to a distance betweena respective user and the television screen. The one or more programsalso include instructions for rendering the user interface object on thetelevision screen in accordance with the variable scaling factor whilemaintaining a display of a television program on the television screenbased on a fixed scaling factor.

Thus, computer systems coupled with television screens are provided withimproved methods for rendering adjustable user interface objects. Theadjustable user interface objects are rendered in accordance withvariable scaling factors, thereby enabling respective users toefficiently interact with the adjustable user interface objects.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the aforementioned implementations as wellas additional aspects and implementations thereof, reference should bemade to the Description of Implementations below, in conjunction withthe following drawings in which like reference numerals refer tocorresponding parts throughout the figures.

FIG. 1 is a block diagram illustrating an exemplary content distributionsystem, in accordance with some implementations.

FIG. 2 is a block diagram illustrating a computer system, in accordancewith some implementations.

FIG. 3 illustrates respective angles occupied by respective userinterface objects, in accordance with some implementations.

FIGS. 4A-4C illustrate exemplary user interfaces in accordance with someimplementations.

FIG. 5 is a block diagram illustrating an exemplary data structure, inaccordance with some implementations.

FIG. 6 is a flowchart representing a method for rendering a userinterface object in accordance with a variable scaling factor, inaccordance with some implementations.

Like reference numerals refer to corresponding parts throughout thedrawings.

DETAILED DESCRIPTION

Methods and systems for rendering user interface objects in accordancewith variable scaling factors are described. Reference will be made tocertain implementations, examples of which are illustrated in theaccompanying drawings. While the invention will be described inconjunction with the implementations, it will be understood that theimplementations are not intended to limit the invention to theseparticular implementations alone.

Moreover, in the following description, numerous specific details areset forth to provide a thorough understanding of the describedimplementations. However, it will be apparent to one of ordinary skillin the art that some implementations may be practiced without theseparticular details. In other instances, methods, procedures, components,and networks that are well-known to those of ordinary skill in the artare not described in detail to avoid obscuring aspects of theimplementations described in this document.

FIG. 1 is a block diagram illustrating an exemplary content distributionsystem 100, according to certain implementations. In FIG. 1, the system100 includes one or more content providers 102 and communicationsnetworks 104. Connected to the communication networks 104 is a companiondevice 114 coupled with a television screen 112 or an integratedtelevision device 116 that includes the television screen 112 andcomponents of the companion device 114. In some implementations, thecompanion device 114 is a set-top box or is a computing device thatincludes set-top box functionality. Various implementations of thecompanion device 114 and/or the integrated television device 116implement the methods described in this document. For the purposes ofthis application, a television screen 112 is any large viewing screen(e.g., in some implementations, a viewing screen 26″ or larger)fabricated using any suitable display technology (e.g., projection, LCD,plasma, OLED, CRT, etc.) that is intended for viewing from a distance ofmore than a few feet and for displaying images—commonly in response tosome manner of remote control.

As used herein, content providers 102 are systems or devices configuredto provide media content (e.g., music, television programs, movies,social media data, web data, etc.). The content providers 102 can be anyof a number of content provider systems, equipment, and/or devices thatprovide media content (e.g., radio broadcasting systems, on-airtelevision broadcasting systems, cable service systems, direct satellitebroadcasting systems, Internet television service servers, Internetradio station servers, web servers, digital video recorders, etc.). Insome implementations, at least a subset of the media contentsdistributed by the content providers 102 includes audio data (e.g.,music, radio programs, television programs, movies, etc.). In someimplementations, at least a subset of the media contents distributed bythe content providers 102 includes video data (e.g., photos, televisionprograms, movies, etc.). In some implementations, at least a subset ofthe media contents distributed by the content providers 102 includesmultimedia data (e.g., television programs, movies, etc.). In someimplementations, at least a subset of the media contents distributed bythe content providers 102 includes user-readable text (e.g., messagessent via short message services, postings on blogs or other socialnetworking media, web pages, etc.).

The content providers 102 distribute media contents via thecommunication networks 104. The communication networks 104 may includeone or more of: radio-frequency communication networks used for on-airor satellite television broadcasting, radio-frequency communicationnetworks used for on-air radio broadcasting, cable-based communicationnetworks, digital audio/video communication networks, the Internet,other wide area networks, local area networks, metropolitan areanetworks, wireless networks, cellular networks, and so on.

In some implementations, the companion device 114 or the integratedtelevision device 116 includes a receiver/converter 106 connected to thecommunication networks 104 and configured to receive audio and/or videosignals, typically via one or more of radio-frequency communicationnetworks and/or one or more digital audio/video communication networks.

In some implementations, the companion device 114 or the integratedtelevision device 116 includes one or more computer communicationnetwork interfaces 108 that are configured for interfacing with one ormore computer communication networks, such as the Internet, other widearea networks, local area networks, metropolitan area networks, wirelessnetworks, cellular networks, and so on.

The companion device 114 or the integrated television device 116 storesand/or executes applications 122. The applications 122 includeapplication programs used for managing the companion device 114 or theintegrated television device 116, including, in some implementations,applications for controlling the display on the television screen ofmedia content from one or more of the content providers 102. Forexample, at least one of the applications 122 is configured to receivedata from the receiver/converter 106 and/or the computer communicationnetwork interface 108 and send data and instructions to a graphicsmodule 110 for rendering media and program content, including userinterfaces and/or user interface objects.

As used herein, the term “user interface object” refers to a displayelement displayed on a display screen of a device. Exemplary userinterface objects include, but are not limited to, buttons, icons,menus, menu options, cursors, information bars, texts, windows, etc.

The graphics module 110 includes one or more display processors orgraphics processing units for rendering user interfaces and/or userinterface objects. In some implementations, the graphics module 110receives data from the receiver/converter 106 and/or the computercommunication network interface 108, and additional data or instructionsfrom the applications 122 for rendering user interfaces and/or userinterface objects. The user interfaces and/or user interface objectsrendered by the graphics module 110 are sent to the television screen112 for display. Visual characteristics of the media and program contentdisplayed on the television screen 112 (e.g., the size and detail ofparticular user interfaces and/or interface objects) reflect a number ofdisplay parameters of the television screen 112, including displayresolution, video resolution/pixel density, and size of the televisionscreen 112.

As used herein, the term “resolution” of a display refers to the numberof pixels (also called “pixel counts” or “pixel resolution”) along eachaxis or in each dimension of the display. For example, a display mayhave a resolution of 1920×1080 pixels. Furthermore, as used herein, theterm “resolution” of a device refers to the resolution of a displaycoupled with the device. The term “resolution” does not imply anylimitations on the size of each pixel or the spacing of pixels. Forexample, compared to a first display with a 1920×1080-pixel resolution,a second display with a 1280×720-pixel resolution has a lowerresolution. However, it should be noted that the physical size of adisplay depends not only on the pixel resolution, but also on many otherfactors, including the pixel size and the spacing of pixels. Therefore,the first display may have the same, smaller, or larger physical size,compared to the second display.

As used herein, the term “video resolution” of a display refers to thedensity of pixels along each axis or in each dimension of the display.The video resolution is often measured in a dots-per-inch (DPI) unit,which counts the number of pixels that can be placed in a line withinthe span of one inch along a respective dimension of the display.

The companion device 114 or the integrated television device 116 mayinclude additional components not illustrated in FIG. 1.

Also illustrated in FIG. 1 is a personal device 118. The personal device118 may be any of a number of computing devices (e.g., Internet kiosk,personal digital assistant, cell phone, smart phone, gaming device,desktop computer, laptop computer, tablet computer, handheld computer,or combinations thereof) used to enable the activities described below.The personal device 118 includes a display screen 112 where a graphicaluser interface (GUI) can be displayed. In some implementations, thepersonal device 118 is also configured to receive media content from thecontent providers 102 via the communication networks 104, and displaythe received media content.

In some implementations, the applications 122 can be executed on eitheror both a personal device 118 or a companion device 114, in which casethe application output, including user interface elements, is presentedon either the television screen 112 or the personal device screen 120.For example, an application can be an Android application that can beexecuted on a companion device 114 (such as a Google TV-enabled set-topbox) and a smart phone/personal device 118 (such as an Android phone).This presents the challenge of providing a consistent user interface foran application 122 regardless of whether its visual outputs aredisplayed at a distance, on a television screen 112, or nearby, on apersonal device screen 120. For example, depending on how the userinterface of an application 122 is configured, the user interfaceelements when displayed on a television screen 112 might be unreasonablylarge (occupying too much screen real estate) or too small for a user tointeract with from a distance using a remote control device. A method isdescribed herein for providing a consistent user interface forapplications 122 that can be executed on both device types 114, 118 byadjusting the size of a particular user interface element when displayedon a television with particular display characteristics at a particulardistance from a user, such that the size of the particular userinterface element when viewed on such a television display 112 wouldappear to be approximately the same size as if that interface elementwere displayed on the portable device screen 120.

FIG. 2 is a block diagram illustrating a computer system 200 inaccordance with some implementations. In some implementations, thecomputer system 200 corresponds to the companion device 114 or theintegrated television device 116 (FIG. 1).

The computer system 200 typically includes one or more processing units(CPUs) 202, graphics module 110, and memory 206. In someimplementations, the computer system 200 also includes one or more of:one or more network or other communications interfaces 108, one or morereceivers and/or converters 106, and one or more distance sensors 208.The computer system 200 includes one or more communication buses 204 forinterconnecting these components. In some implementations, thecommunication buses 204 include circuitry (sometimes called a chipset)that interconnects and controls communications between systemcomponents. In some other implementations, the computer system 200includes a user interface (not shown) (e.g., a keyboard, and a mouse orother pointing device). The computer system 200 is coupled with thetelevision screen 112, regardless of whether the television screen 112is integrated with the computer system 200 or located outside thecomputer system 200. The television screen 112 may be used to display agraphical user interface.

In some implementations, the one or more distance sensors 208 are usedto determine a distance between a user of the computer system 200 andthe television screen 112. In some implementations, the one or moredistance sensors 208 include one or more cameras that can monitor thedistance between the user of the computer system 200 and the televisionscreen 112. In some implementations, the one or more distance sensors208 include ultrasound sensors or infrared sensors that are used todetermine the distance between the user of the computer system 200 andthe television screen 112. Typically, the one or more distance sensors208 are activated only with an explicit permission (e.g., an opt-inapproval) of the user.

The memory 206 of the computer system 200 includes high-speed randomaccess memory, such as DRAM, SRAM, DDR RAM or other random access solidstate memory devices; and may include non-volatile memory, such as oneor more magnetic disk storage devices, optical disk storage devices,flash memory devices, or other non-volatile solid state storage devices.The memory 206 may optionally include one or more storage devicesremotely located from the CPU(s) 202. The memory 206, or alternately thenon-volatile memory device(s) within the memory 206, comprises anon-transitory computer readable storage medium. In someimplementations, the memory 206 or the computer readable storage mediumof the memory 206 stores the following programs, modules and datastructures, or a subset thereof:

-   -   operating system 210 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   network communication module (or instructions) 212 that is used        for connecting the computer system 200 to the content providers        (e.g., content providers 102, FIG. 1) via one or more network        interfaces 108 and one or more communications networks 104 (FIG.        1), such as the Internet, other wide area networks, local area        networks, metropolitan area networks, wireless networks,        cellular networks, and so on;    -   receiver/converter module (or instructions) 214 that is used for        receiving media content from the content providers (e.g.,        content providers 102) via one or more receivers/converters 106        and one or more communications networks 104, such as        radio-frequency audio/video communication networks, cable-based        communication networks, digital audio/video communication        networks, and so on;    -   application service module 216 that provides various services to        the applications 122;    -   applications 122 that include various applications executed by        the one or more processing units 202 causing the computer system        200 to perform certain operations (e.g., a media player 220,        which, when executed, displays contents of media data; an email        application 222, which, when executed, displays one or more        email messages, etc.); and    -   data storage 226 that stores various data used by the computer        system 200.

The data storage 226 typically includes device characteristics 228 thatidentify characteristics (e.g., specifications, operating modes, etc.)of the computer system 200 and/or the television screen 112. The devicecharacteristics 226 are described in detail with respect to FIG. 5.

In some implementations, the data storage 226 includes media contentstorage 230. The media content storage 230 may store a complete mediadata for a particular program (e.g., a music file corresponding to anentire song, a multimedia data including an entire length of atelevision program episode or a movie, etc.), which may be played at atime desired by a user. The media content storage 230 may store aportion of a particular program, which may be used for improving thequality of playing the particular program (e.g., for caching or forcontent analysis for finding related programs and/or services).

In some implementations, the data storage 226 includes user interfaceobjects 232. In some implementations, the user interface objects 232include a set of multiple user interface objects that correspond to asame user interface object type, where each user interface object in theset has a distinct resolution (e.g., a distinct number of pixels). Arespective user interface object in the set may be used for rendering auser interface object of a distinct size.

The application service module 216 includes one or more service modulesto provide various application services (e.g., memory management,graphics rendering, etc.) to the applications 122. In someimplementations, the application service module 216 is included in theoperating system 210. In some implementations, the application servicemodule 216 includes a rendering service module 218 for sending dataand/or instructions to the graphics module 110 for rendering userinterfaces and/or user interface objects. In some implementations, therendering service module 218 includes a scaling module 224, which isused for determining a variable scaling factor and rendering one or moreuser interface objects in accordance with the variable scaling factor.

In some implementations, the scaling module 224 retrieves one or moreparameters from the device characteristics 226 (e.g., a resolution 504,predefined distance 508, measured distance 510, user provided distance512, and/or screen size 514, FIG. 5) for determining the variablescaling factor. In some implementations, the scaling module 224 storesthe determined variable scaling factor into the device characteristics226 as a variable scaling factor 506.

Optionally, the memory 206 may include additional applications, modules,or components. In some implementations, the computer system 200 includesadditional components not illustrated in FIG. 2. For example, thecomputer system 200 may include one or more audio modules for generatingand/or amplifying audio signals. The computer system 200 may alsoinclude a security module for protecting the data stored in the computersystem 200.

Each of the above identified modules and applications corresponds to aset of instructions for performing one or more functions describedabove. These modules (i.e., sets of instructions) need not beimplemented as separate software programs, procedures or modules, andthus various subsets of these modules may be combined or otherwisere-arranged in various implementations. In some implementations, thememory 206 may store a subset of the modules and data structuresidentified above. Furthermore, the memory 206 may store additionalmodules and data structures not described above.

Notwithstanding the discrete blocks in FIGS. 1 and 2, these figures areintended to provide functional descriptions of some implementationsrather than structural descriptions of functional elements in theimplementations. One of ordinary skill in the art will recognize that anactual implementation might have the functional elements grouped orsplit among various components. In practice, and as recognized by thoseof ordinary skill in the art, items shown separately could be combinedand some items could be separated. For example, in some implementations,the television screen 112 is included in the computer system 200. Inother implementations, the television screen 112 is physically separatedfrom the computer system 200. In some implementations, the CPUs 202 andthe memory 206 are included in a single semiconductor package. In someimplementations, the CPUs 202 and the graphics module 110 are includedin a single semiconductor package. In some implementations, the computersystem 200 is implemented on multiple distributed computer systems. Insome implementations, the rendering service module 218 and/or thescaling module 224 are integrated into the application service module216, and the rendering service module 218 and/or the scaling module 224may not exist as separate modules.

The actual number of components used to implement the computer system200 and how features are allocated among them will vary from oneimplementation to another, and may depend in part on the amount of datatraffic that the system must handle during peak usage periods as well asduring average usage periods, and may also depend on the amount of datastored by the computer system 200. Moreover, one or more of the blocks(e.g., the television screen 112, and the receiver/converter 106, etc.)in FIGS. 1 and 2 may be implemented on one or more separate devicesdesigned to provide the described functionality. Although thedescription herein refers to certain features implemented in thetelevision device and the computer system 200, the implementations arenot limited to such distinctions. For example, features described hereinas being part of the computer system 200 can be implemented in whole orin part in the television device, and vice versa.

FIG. 3 illustrates respective angles occupied by respective userinterface objects, in accordance with some implementations. As describedabove, in some implementations the scaling module 224 (FIG. 2) adjuststhe size of an icon or other user interface element on the TV screen 112such that the angle of that user interface element would appear to beapparently the same as the same icon presented on a nearby portabledevice 118.

Shown in FIG. 3 is an eye 302 of a respective user. Also shown in FIG. 3is a first user interface object 304 located at a distance D1 from theeye 302. The first user interface object 304 when viewed from the eye302 occupies a first angle α.

When a second user interface object 306 that has the same size as thefirst user interface object 304 is viewed from the eye 302 located at adistance D2 from the second user interface object 306, the second userinterface object 306 occupies a second angle β that is smaller than thefirst angle α. Thus, when a user interface object (e.g., the second userinterface object 306) is located further away from the respective user,it may be challenging for the respective user to recognize, or resolvefeatures (e.g., read characters) in, the user interface object locatedfurther away from the respective user.

This problem is addressed by increasing the size of the user interfaceobject. As shown in FIG. 3, a third user interface object 308 that islarger than the first user interface object 304 is located at thedistance D2 from the eye 302. When the third user interface object 308is viewed from the eye 302, the third user interface object 308 occupiesthe first angle α. Thus, both the first user interface object 304located at the distance D1 and the third user interface object 308located at the distance D2 occupy the same angle when viewed from theeye 302. As a result, the respective user may recognize the userinterface object 308 located at the distance D2 from the eye 302 aseasily as recognizing the user interface object 304 located at thedistance D1 from the eye 302.

However, increasing the size of the user interface object excessivelyreduces the remaining area of a display screen that may be used fordisplaying other content (e.g., a television program). Thus, there needsto be a more systematic approach to increasing the size of the userinterface object. In some implementations, the size of the userinterface object is increased in accordance with a scaling factor. Insome implementations, the scaling factor is determined in accordancewith the distance between the eye 302 (or the respective user) and adisplay screen that displays the user interface object so that the angleoccupied by the user interface object remains substantially the same(e.g., the angle occupied by the user interface object varies less thanfive, ten, or twenty percent when the distance between the respectiveuser and the user interface object doubles).

FIGS. 4A-4C illustrate exemplary user interfaces displayed on atelevision screen 112 and a personal device 118 (e.g., a mobile phone, atablet computer, a notebook computer, a desktop computer, etc.) inaccordance with some implementations. It should be noted that FIGS.4A-4C are not drawn to scale.

In FIG. 4A, the personal device 118 displays a scene 414 from atelevision program. The television screen 112-A displays a correspondingscene 404 from the television program. Typically, the scene 404 isscaled to fit a predefined region of the television screen 112-A (e.g.,the entire television screen 112-A or a portion thereof). Thus, the sizeof the scene 404 (and its scaling factor) displayed on the televisionscreen 112-A is often determined solely based on the size of thetelevision screen 112-A, and the scaling factor does not change inaccordance with the distance between the television screen 112-A and arespective user watching the television screen 112-A.

The personal device 118 also displays user interface objects 416, 418,and 420. The size of each user interface object (e.g., the userinterface object 416, 418, or 420) is often characterized with a numberof pixels (e.g., 100 pixel-wide and 50 pixel-high). The televisionscreen 112-A displays corresponding user interface objects 406, 408, and410, where each of the corresponding user interface objects 406, 408,and 410 has the same number of pixels as respective user interfaceobjects 416, 418, and 420. Because the size of a pixel on the display ofthe personal device 118 may be different from the size of a pixel on thetelevision screen 112-A, the user interface object 406, 408, and 410 maybe displayed on the television screen 112-A larger than thecorresponding user interface objects 416, 418, and 420 displayed on thepersonal device 118 (e.g., the personal device and the television screentypically have different video resolutions, such as 240, 320, or 480 dpifor mobile phones and 20 to 80 dpi for television screens). However, auser watching the television screen 112-A from a distance may still havedifficulty recognizing (or reading characters in) the user interfaceobject.

FIG. 4B illustrates an exemplary user interface displayed on thetelevision screen 112-B in accordance with some implementations. Thetelevision screen 112-B concurrently displays the scene 404 from thetelevision program and user interface objects 426, 428, and 430 thatcorrespond to the user interface objects 416, 418, and 420 displayed onthe personal device 118. The user interface objects 426, 428, and 430are scaled so that the user watching the television screen 112-B from adistance can easily recognize the user interface objects 426, 428, and430. The scaling factor for scaling the user interface objects 426, 428,and 430 is determined in accordance with a distance parameter thatcorresponds to a distance between the user and the television screen112-B. It should be noted that the scene 404 rendered on the televisionscreen 112-B has the same size as the scene 404 rendered on thetelevision screen 112-A (FIG. 4A). In other words, the scene 404 isrendered in accordance with a scaling factor that is independent fromthe distance between the user and the television screen 112.

FIG. 4C illustrates an exemplary user interface displayed on thetelevision screen 112-C in accordance with some implementations. Thetelevision screen 112-C concurrently displays the scene 404 from thetelevision program and user interface objects 436, 438, and 440 thatcorrespond to the user interface objects 416, 418, and 420 displayed onthe personal device 118. The television screen 112-C is located furtheraway from the user than the television screen 112-B. Thus, the userinterface objects 436, 438, and 440 are rendered larger than thecorresponding user interface objects 426, 428, and 430 (FIG. 4B).

FIG. 5 is a block diagram illustrating an exemplary data structure forthe device characteristics 226 (FIG. 2), in accordance with someimplementations. The device characteristics 226 include the following,or a subset or superset thereof:

-   -   (optional) a device identifier 502, which indicates a type of        the computer system 200 (e.g., whether the computer system is        integrated with the television screen 112 or whether the        computer system is a physically separable from the television        screen 112, such as a set-top box);    -   a screen resolution 504, which identifies the resolution of the        television screen (e.g., the television screen 112) or a        resolution mode the television screen is operating in (e.g.,        1080 p or 720 p);    -   a variable scaling factor 506, which is used for rendering one        or more user interface objects;    -   (optional) a predefined distance 508, which is a presumed        distance between a user and the television screen (e.g., the        television screen 112), typically preselected by an engineer or        a software developer;    -   (optional) a measured distance 510, which is an actual distance        between the user and the television screen (e.g., the television        screen 112);    -   (optional) a user provided distance 512, which is a distance        between the user and the television screen (e.g., the television        screen 112) as provided by the user; and    -   (optional) a screen size 514, which is a size of the television        screen (e.g., the television screen 112).

As stated previously, the device characteristics 226 may include more orfewer data fields. In some implementations, the device characteristics226 include a predefined scaling factor, which may be provided insteadof, or in addition to, the predefined distance 508. The predefinedscaling factor may be used unless the measured distance or the userprovided distance deviates from the predefined distance by more than apredefined threshold.

FIG. 6 is a flowchart representing a method 600 for rendering a userinterface object in accordance with a variable scaling factor, inaccordance with some implementations. The method is performed at acomputer system (e.g., the computer system 200, FIG. 2) coupled with atelevision screen (e.g., the television screen 112). The computer systemincludes one or more processors (e.g., the CPU(s) 202, FIG. 2) andmemory (e.g., the memory 206) storing one or more programs, forexecution by the one or more processors, for rendering one or more userinterface objects on the television screen.

The system receives (602) a request for rendering a user interfaceobject. For example, one of the applications 122 (e.g., a media player220, FIG. 2) may send to the application service module 216 a requestfor rendering one or more user interface objects, and the systemreceives the request through the application service module 216.

The system identifies (604) a variable scaling factor. For example, thesystem may retrieve the variable scaling factor 506 from the devicecharacteristics 226. In some implementations, the system determines(e.g., calculates) the variable scaling factor 506 prior to receivingthe request. In some implementations, the system determines (e.g.,calculates) the variable scaling factor 506 in response to receiving therequest. The variable scaling factor is determined in accordance with adistance parameter corresponding to a distance between a respective userand the television screen. In some implementations, the variable scalingfactor is increased proportionally to the distance parameter. Forexample, when the distance between the respective user and thetelevision screen changes from five-feet to ten-feet, the variablescaling factor doubles.

In some implementations, the variable scaling factor is represented as amultiplier. For example, the variable scaling factor may have a value ofone when the size of the user interface object need not be increased.When the size of the user interface object needs to be doubled, thevariable scaling factor may have a value of two. In someimplementations, the variable scaling factor is expressed using the unitof video resolution (e.g., dots-per-inch). For example, for a displaythat has an actual video resolution of 50 dpi, rendering a userinterface object at a 200 dpi resolution has the effect of increasingthe size of the user interface object by four times.

In some implementations, the variable scaling factor is determined (606)in accordance with a resolution mode of the television screen. In someimplementations, the variable scaling factor is increased proportionallyto the resolution of the television screen. For example, when theresolution mode of the television screen increases by 50% (e.g., from720 p to 1080 p), the variable scaling factor also increases by 50%(e.g., from 213 dpi to 320 dpi).

In some implementations, the system determines (608) the distancebetween the respective user and the television screen. For example, thesystem may use the distance sensor 208 (FIG. 2) to determine thedistance between the respective user and the television screen (e.g.,the television screen 112).

In some implementations, the distance parameter corresponds (610) to apredefined distance (e.g., the predefined distance 508) between therespective user and the television screen. Thus, the distance parameterneed not be based on the actual distance between the respective user andthe television screen.

In some implementations, the system receives (612) as an input from therespective user the distance between the respective user and thetelevision screen. The distance received from the respective user may bestored in the device characteristics 226 as the user provided distance512. In some implementations, the distance parameter corresponds to thedistance received from the respective user.

In some implementations, the variable scaling factor is determined (614)in accordance with a screen size of the television screen. For example,when the screen size of the television screen doubles (at the sameresolution), the variable scaling factor is reduced by half. In someimplementations, the variable scaling factor is determined in accordancewith the screen size and the resolution of the television screen. Insome implementations, the video resolution is first determined from thescreen size and the resolution of the television screen, and in turn,the variable scaling factor is determined in accordance with the videoresolution. For example, comparing a thirty-inch television screen at a720 p resolution and a forty-inch television screen at the same 720 presolution, a respective pixel in the forty-inch television screen islarger than each pixel in the thirty-inch television screen. Thus, afewer pixels are required to display a user interface object on theforty-inch television screen compared to displaying a corresponding userinterface object of the same size on the thirty-inch television screen.

The system renders (616) the user interface object on the televisionscreen in accordance with the variable scaling factor while maintaininga display of a television program on the television screen based on afixed scaling factor. As illustrated in FIGS. 4B and 4C, the userinterface objects illustrated in FIGS. 4B and 4C (e.g., the userinterface objects 426, 428, 430, 436, 438, and 440) are rendered inaccordance with the variable scaling factor (e.g., rendered large orsmall based on the variable scaling factor), while the scene 404 fromthe television program is displayed in accordance with the fixed scalingfactor (e.g., the size or zoom of the scene 404 remains independent ofthe distance between the respective user and the television screen).

In some implementations, the system renders the user interface object onthe television screen in accordance with the variable scaling factor byincreasing the size of the user interface object based on the variablescaling factor. In some implementations, the user interface object isstored based on vector graphics so that the system can readily scale thesize of the user interface object. In some implementations, the systemstores a set of corresponding user interface objects, where each userinterface object has a distinct size. The system may retrieve the userinterface object of a particular size based on the variable scalingfactor.

In some implementations, the system renders the user interface object onthe television screen in accordance with the variable scaling factorwhile maintaining a display of a first content (e.g., a photo, movie,game, etc.) on the television screen based on the fixed scaling factor.

In some implementations, the user interface object rendered by thecomputer system has (618) a same apparent size to the respective userwatching the television screen as a corresponding user interface objectrendered by a personal device executing the one or more programs whenthe corresponding user interface object is viewed by the respective userusing the personal device. The television screen is located further awayfrom the respective user than the personal device. For example, the userinterface object 416 (FIG. 4B) has the same apparent size as the userinterface object 426 when viewed by a user at respective distances. Asexplained with respect to FIG. 3, the user interface object 308 has thesame apparent size to the user as the user interface object 304.

In some implementations, the user interface object has (620) a firstangle when the user interface object is viewed by the respective userwatching the television screen. The television screen is located furtheraway from the respective user than the personal device. A correspondinguser interface object rendered by a personal device executing the one ormore programs has a second angle when the corresponding user interfaceobject is viewed by the respective user using the personal device. Thefirst angle matches the second angle. For example, in FIG. 3, the userinterface object 308 and the user interface object 304 occupy the sameangle when viewed by the user.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theimplementations were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious implementations with various modifications as are suited to theparticular use contemplated.

It will be understood that, although the terms first, second, etc. havebeen used herein to describe various elements, these elements should notbe limited by these terms. These terms are only used to distinguish oneelement from another. For example, a first angle could be termed asecond angle, and, similarly, a second angle could be termed a firstangle. The first angle and the second angle are both angles, but theyare not the same angle.

The terminology used in the description of the implementations herein isfor the purpose of describing particular implementations only and is notintended to be limiting of the claims. As used in the description of theimplementations and the appended claims and the appended claims, thesingular forms “a,” “an,” and “the” are intended to include the pluralforms as well, unless the context clearly indicates otherwise. It willalso be understood that the term “and/or” as used herein refers to andencompasses any and all possible combinations of one or more of theassociated listed items. It will be further understood that the terms“comprises” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in response to detecting,” dependingon the context. Similarly, the phrase “if it is determined” or “if [astated condition or event] is detected” may be construed to mean “upondetermining” or “in response to determining” or “upon detecting (thestated condition or event)” or “in response to detecting (the statedcondition or event),” depending on the context.

1. A method for rendering one or more user interface objects on atelevision screen, comprising: at a computer system coupled with thetelevision screen, the computer system comprising one or more processorsand memory storing one or more programs, for execution by the one ormore processors, for rendering the one or more user interface objects onthe television screen, the method comprising: receiving a request forrendering a user interface object; identifying a variable scalingfactor, wherein the variable scaling factor is determined in accordancewith a distance parameter corresponding to a distance between arespective user and the television screen; and rendering the userinterface object on the television screen in accordance with thevariable scaling factor while maintaining a display of a televisionprogram on the television screen based on a fixed scaling factor.
 2. Themethod of claim 1, wherein the variable scaling factor is determined inaccordance with a resolution mode of the television screen.
 3. Themethod of claim 1, further comprising determining the distance betweenthe respective user and the television screen.
 4. The method of claim 1,wherein the distance parameter corresponds to a predefined distancebetween the respective user and the television screen.
 5. The method ofclaim 1, further comprising receiving as an input from the respectiveuser the distance between the respective user and the television screen.6. The method of claim 1, wherein the user interface object rendered bythe computer system has a same apparent size to the respective userwatching the television screen as a corresponding user interface objectrendered by a personal device executing the one or more programs whenthe corresponding user interface object is viewed by the respective userusing the personal device.
 7. The method of claim 1, wherein: the userinterface object has a first angle when the user interface object isviewed by the respective user watching the television screen; acorresponding user interface object rendered by a personal deviceexecuting the one or more programs has a second angle when thecorresponding user interface object is viewed by the respective userusing the personal device; and the first angle matches the second angle.8. The method of claim 1, wherein the variable scaling factor isdetermined in accordance with a screen size of the television screen. 9.A computer system coupled with a television screen for rendering one ormore user interface objects on the television screen, comprising: one ormore processors; memory storing one or more programs, for execution bythe one or more processors, for rendering the one or more user interfaceobjects on the television screen, the one or more programs includinginstructions for: receiving a request for rendering a user interfaceobject; identifying a variable scaling factor, wherein the variablescaling factor is determined in accordance with a distance parametercorresponding to a distance between a respective user and the televisionscreen; and rendering the user interface object on the television screenin accordance with the variable scaling factor while maintaining adisplay of a television program on the television screen based on afixed scaling factor.
 10. The computer system of claim 9, wherein thevariable scaling factor is determined in accordance with a resolutionmode of the television screen.
 11. The computer system of claim 9, theone or more programs further include instructions for determining thedistance between the respective user and the television screen.
 12. Thecomputer system of claim 9, wherein the user interface object renderedby the computer system has a same apparent size to the respective userwatching the television screen as a corresponding user interface objectrendered by a personal device executing the one or more programs whenthe corresponding user interface object is viewed by the respective userusing the personal device.
 13. The computer system of claim 9, wherein:the user interface object has a first angle when the user interfaceobject is viewed by the respective user watching the television screen;a corresponding user interface object rendered by a personal deviceexecuting the one or more programs has a second angle when thecorresponding user interface object is viewed by the respective userusing the personal device; and the first angle matches the second angle.14. The computer system of claim 9, wherein the variable scaling factoris determined in accordance with a screen size of the television screen.15. A non-transitory computer readable storage medium storing one ormore programs for execution by one or more processors of a computersystem coupled with a television screen, the one or more programsincluding instructions for: receiving a request for rendering a userinterface object; identifying a variable scaling factor, wherein thevariable scaling factor is determined in accordance with a distanceparameter corresponding to a distance between a respective user and thetelevision screen; and rendering the user interface object on thetelevision screen in accordance with the variable scaling factor whilemaintaining a display of a television program on the television screenbased on a fixed scaling factor.
 16. The computer readable storagemedium of claim 15, wherein the variable scaling factor is determined inaccordance with a resolution mode of the television screen.
 17. Thecomputer readable storage medium of claim 15, wherein the one or moreprograms further include instructions for determining the distancebetween the respective user and the television screen.
 18. The computerreadable storage medium of claim 15, wherein the user interface objectrendered by the computer system has a same apparent size to therespective user watching the television screen as a corresponding userinterface object rendered by a personal device executing the one or moreprograms when the corresponding user interface object is viewed by therespective user using the personal device.
 19. The computer readablestorage medium of claim 15, wherein: the user interface object has afirst angle when the user interface object is viewed by the respectiveuser watching the television screen; a corresponding user interfaceobject rendered by a personal device executing the one or more programshas a second angle when the corresponding user interface object isviewed by the respective user using the personal device; and the firstangle matches the second angle.
 20. The computer readable storage mediumof claim 15, wherein the variable scaling factor is determined inaccordance with a screen size of the television screen.